/*******************************************************************************
 * Classe Pion : création des pions sur une case et gestion de leur propriétés
 ******************************************************************************/
package tp2;

import java.awt.*;
import javax.swing.*;

/**
 *
 * @author W&G
 */
public class Pion extends JComponent implements Jouable {

    private Case caseCourante; // lien vers la case qui contient le pion
    private Case.Couleur couleur; //couleur du pion

    public Pion(Case c) {//Construit le pion en fonction de la case
        caseCourante = c;
    }

    public Pion(){

    }
    @Override
    public boolean estFixe()
    {
        return false;
    }
    @Override
    public boolean estClique(boolean clique)
    {
        return true;
    }

    @Override
    public void paintComponent(Graphics g) {
        switch (caseCourante.getEtat()) {
            case JOUEUR1:
                couleur = Case.Couleur.PION1;
                break;
            case JOUEUR2:
                couleur = Case.Couleur.PION2;
                break;
        }
        g.setColor(couleur.getCouleur()); // dessine le contour du pion
        g.fillOval(caseCourante.getWidth() / 8, caseCourante.getHeight() / 8,
                caseCourante.getWidth() * 3 / 4, caseCourante.getHeight() * 3 / 4);

        g.setColor(Color.BLACK); // le cercle noir qui contient le visage
        g.fillOval(caseCourante.getWidth() / 4, caseCourante.getHeight() / 4,
                caseCourante.getWidth() / 2, caseCourante.getHeight() / 2);

        g.setColor(couleur.getCouleur());
        if (caseCourante.getPionChoisi()) { // dessine le pion surpris
            g.fillOval(caseCourante.getWidth() * 21 / 64, caseCourante.getHeight() * 26 / 64,
                    caseCourante.getWidth() * 3 / 32, caseCourante.getHeight() * 3 / 32);
            g.fillOval(caseCourante.getWidth() * 37 / 64, caseCourante.getHeight() * 26 / 64,
                    caseCourante.getWidth() * 3 / 32, caseCourante.getHeight() * 3 / 32);
            g.fillOval(caseCourante.getWidth() * 28 / 64, caseCourante.getHeight() * 35 / 64,
                    caseCourante.getWidth() / 8, caseCourante.getHeight() / 8);
        } else { // dessine le pion blasé
            g.drawLine(caseCourante.getWidth()* 21 / 64, caseCourante.getHeight() * 29 / 64,
                    caseCourante.getWidth() * 27 / 64, caseCourante.getHeight() * 29 / 64);
            g.drawLine(caseCourante.getWidth() * 37 / 64, caseCourante.getHeight() * 29 / 64,
                    caseCourante.getWidth() * 43 / 64, caseCourante.getHeight() * 29 / 64);
            g.drawLine(caseCourante.getWidth() * 28 / 64, caseCourante.getHeight() * 39 / 64,
                    caseCourante.getWidth() * 36 / 64, caseCourante.getHeight() * 39 / 64);
        }
    }
}
